// 统一响应结构
export interface RetResult<T> {
  state: string;
  msg?: string; // 可选的消息字段
  data: T;
}

/** 分页元数据 */
export interface PaginationMeta {
  totalRow: number;
  totalPage: number;
  pageSize: number;
  pageNumber: number;
  firstPage: boolean;
  lastPage: boolean;
}

/** 分页数据结构（关键修改：移除继承，添加list属性） */
export interface PageData<T> extends PaginationMeta {
  list: T[]; // 列表数据，注意字段名是list，类型是数组
}

export interface HeardResult {
  value: number | string;
}

/** 分页查询参数 */
export interface PageParams {
  current?: number;
  size?: number;
  [key: string]: any; // 允许任意其他查询参数
}

// 创建分页请求参数
// export function createPageParams(
//   pagination: { current: number; size: number },
//   filterData: Record<string, any> = {},
//   sortData: Record<string, any> = {},
// ): PageParams {
//   return {
//     current: pagination.current,
//     size: pagination.size,
//     ...filterData,
//     ...sortData,
//   };
// }

export function createPageParams(options: {
  [key: string]: any; // 允许其他任意参数
  current: number;
  size: number;
}) {
  return {
    pageNo: options.current,
    pageSize: options.size,
    ...options, // 包含所有其他参数
  };
}
